package com.jyw.flowable.service;

import com.jyw.common.core.page.TableDataInfo;
import com.jyw.flowable.domain.dto.WfModelAddDto;
import com.jyw.flowable.domain.dto.WfModelEditDto;
import com.jyw.flowable.domain.dto.WfModelPageDto;
import com.jyw.flowable.domain.dto.WfModelSaveDto;
import com.jyw.flowable.domain.vo.WfModelVo;

/**
 * @author Created by ZhangCheng on 2023/11/13
 */
public interface IWfModelService {

    /**
     * 参数查询流程模型
     *
     * @param wfModelPageDto
     * @return
     */
    TableDataInfo<WfModelVo> list(WfModelPageDto wfModelPageDto);

    /**
     * 获取bpmn xml
     *
     * @param modelId
     * @return
     */
    String queryBpmnXmlById(String modelId);

    /**
     * 添加流程模型
     *
     * @param wfModelAddDto
     */
    void add(WfModelAddDto wfModelAddDto);

    /**
     * 修改流程模型
     *
     * @param wfModelEditDto
     */
    void edit(WfModelEditDto wfModelEditDto);

    /**
     * 保存流程模型
     *
     * @param wfModelSaveDto
     */
    void save(WfModelSaveDto wfModelSaveDto);

    /**
     * 部署流程
     *
     * @param modelId
     */
    void deployModel(String modelId);

    /**
     * 删除流程模型
     *
     * @param ids
     */
    void deleteByIds(String[] ids);
}
